home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / os2 / fm2_246.zip / EXAMPLE.CMD < prev    next >
OS/2 REXX Batch file  |  1996-04-06  |  3KB  |  94 lines

  1. /*
  2.  * Example of how a rexx file can operate on a list file created by
  3.  * FM/2 (the list file should contain filenames only).
  4.  *
  5.  * This example can be editted at the boxed comment area below and
  6.  * used with FM/2 Commands containing the %! metastring.
  7.  *
  8.  * Call as "%c /C <drive:\path\>EXAMPLE.CMD %!" (exclude quotes)
  9.  *  (for example:  %c /C e:\fm2\EXAMPLES.CMD %!)
  10.  */
  11.  
  12. /* suppress echo from "batch" commands */
  13. '@Echo off'
  14. /* clear screen (GPs). */
  15. '@cls'
  16.  
  17. listfile = ''
  18. /* get name of listfile from command line. */
  19. parse arg listfile
  20.  
  21. /* if no listfile name was given, issue help and exit. */
  22. if listfile = '' then
  23. do
  24.   say 'Give the name of a listfile as an argument to this REXX script.'
  25.   say 'A listfile is a text file that contains full filenames, one per line.'
  26.   exit
  27. end
  28.  
  29. /* for debugging purposes: */
  30. say 'Name of our listfile is "'listfile'".'
  31.  
  32. /* see if the listfile given exists -- exit with error message if not */
  33. rc = stream(listfile,'C','QUERY EXISTS')
  34. if rc = '' then
  35. do
  36.   say 'File "'listfile'" doesn''t exist.'
  37.   exit
  38. end
  39.  
  40. /* attempt to open the listfile given on the command line */
  41. rc = stream(listfile,'C','OPEN')
  42.  
  43. /* if open was successful, enter loop */
  44. if rc = 'READY:' then
  45. do
  46.  
  47.   counter = 0     /* initialize counter */
  48.  
  49.   /* read each line of the listfile into filename */
  50.   do while lines(listfile) = 1
  51.     filename = linein(listfile)
  52.  
  53.     /* remove any leading/trailing blanks */
  54.     filename = strip(filename,'b')
  55.  
  56.     /* process only non-blank strings */
  57.     if filename \= '' then
  58.  
  59.  
  60.     /*************************************************************
  61.      * here you would do something to/with the file in filename. *
  62.      * since this is only an example, we'll just print the name. *
  63.      *************************************************************/
  64.  
  65.     do
  66.       say filename          /* useful for debugging  */
  67.       counter = counter + 1 /* count files processed */
  68.     end
  69.  
  70.     /*************************************************************
  71.      * end of area where you'd do your special processing.       *
  72.      *************************************************************/
  73.  
  74.   end
  75.  
  76.   /* close the listfile. */
  77.   rc = stream(listfile,'C','CLOSE')
  78.  
  79.   /* remove the listfile -- checks to disallow wildcards in name (GPs). */
  80.   if (pos('*',listfile) = 0) & (pos('?',listfile) = 0) then
  81.   do
  82.     'del "'listfile'" 1>NUL 2>NUL'
  83.   end
  84.  
  85. end
  86. else
  87. do
  88.   say 'Error opening "'listfile'".'
  89.   exit
  90. end
  91.  
  92. /* we're done. */
  93. say '  **I processed 'counter' objects.'
  94.